//
//  DHNetAPIClient.h
//  Dresshere
//
//  Created by ZhangPeng on 2017/12/28.
//  Copyright © 2017年 张朋. All rights reserved.
//

#import "AFHTTPSessionManager.h"

typedef enum {
    Get = 0,
    Post,
    Put,
    Delete
} NetworkMethod;

@interface DHNetAPIClient : AFHTTPSessionManager

+ (DHNetAPIClient *)shareDHNetAPIClient;

#pragma mark - 通用模块
//获取当前最新版本号
- (void)request_versionAndBlock:(void (^)(id data, NSError *error))block;
//获取又拍云签名
- (void)request_upyun_signatureWithParams:(NSDictionary *)dic andBlock:(void (^)(id data, NSError *error))block;
//获取物流类别
- (void)request_logisticsAndBlock:(void (^)(id data, NSError *error))block;
//获取所有风格列表
- (void)request_stylesAndBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 用户模块
//退出登录
- (void)request_logoutAndBlock:(void (^)(id data, NSError *error))block;

//使用短信验证码登录
- (void)request_loginWithPhone:(NSString *)phone code:(NSString *)code andBlock:(void (^)(id data, NSError *error))block;
//使用微信登录
- (void)request_wechat_loginWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//补充微信登录的用户手机号码
- (void)request_supplement_phoneWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//设置用户身高年龄体重
- (void)request_bodyWithWeight:(NSString *)weight height:(NSString *)height age:(NSString *)age andBlock:(void (^)(id data, NSError *error))block;
//获取用户基本信息
- (void)request_basicInfoAndBlock:(void (^)(id data, NSError *error))block;
//收藏&取消收藏
- (void)request_user_likeAndOrigin:(NSString *)origin andBlock:(void (^)(id data, NSError *error))block;
//获取收藏内容
- (void)request_user_likeParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//获取用户最近使用的收货地址
- (void)request_address_recentAndBlock:(void (^)(id data, NSError *error))block;

//获取用户待归还的服饰
//申请归还服饰
//获取用户通知

#pragma mark - 首页
//获取首页封面
- (void)request_coversAndBlock:(void (^)(id data, NSError *error))block;
//获取所有场景
- (void)request_scenesAndBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 服饰
//获取高价值金额
//获取品类下的尺码合集
- (void)request_category_sizes_nameWithCategoryID:(NSString *)categroy_id andBlock:(void (^)(id data, NSError *error))block;
//查询服饰
- (void)request_search_productsWithDictionary:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//获取服饰评论
//对服饰评论点赞
//获取服饰被点赞（收藏）数量
//获取某服饰的关联服饰（相关产品、相关服饰

#pragma mark - 购物车
//删除购物车某商品
- (void)request_cart_deleteWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 订单
//验证订单是否可被创建
- (void)request_orders_validWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//创建订单
- (void)request_orders_createWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//获取用户待归还的服饰
- (void)request_products_returnAndBlock:(void (^)(id data, NSError *error))block;
//申请归还服饰
- (void)request_products_returnWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 会员
//获取会员类别
//查询用户是否可以购买VIP
- (void)request_vip_satisfyAndBlock:(void (^)(id data, NSError *error))block;
//计算用户购买会员需要的金额
- (void)request_vip_priceWithVip_id:(NSString *)vip_id andBlock:(void (^)(id data, NSError *error))block;
//获取用户会员订阅信息
- (void)request_user_vipAndBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 时尚穿搭
//获取时尚穿搭列表（文章列表）
- (void)request_articlesPageIndex:(NSNumber *)pageIndex pageSize:(NSNumber *)pageSize andBlock:(void (^)(id data, NSError *error))block;
//获取文章关联的服饰
- (void)request_articles_relatedWithArticleID:(NSString *)article_id andBlock:(void (^)(id data, NSError *error))block;


#pragma mark - Version 2.0

#pragma mark - 通用接口
//发送验证码
- (void)request_smscodeWithPhone:(NSString *)phone AndBlock:(void (^)(id data, NSError *error))block;
//获取版本号
//获取商旅专送支持的城市
- (void)request_supportCitiesAndBlock:(void (^)(id data, NSError *error))block;
//获取所有颜色
- (void)request_colorsAndBlock:(void (^)(id data, NSError *error))block;
//获取物流类别
//获取风格列表
//获取所有品类
- (void)request_categoriesWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//获取热门品牌
- (void)request_brands_hotWithParams:(NSDictionary *)params AndBlock:(void (^)(id data, NSError *error))block;
//GET 全局搜索
- (void)request_app_searchWithParams:(NSDictionary *)params AndBlock:(void (^)(id data, NSError *error))block;
//获取广告
- (void)request_app_adWithParams:(NSDictionary *)params AndBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 首页
//获取本月特辑
- (void)request_specialsAndBlock:(void (^)(id data, NSError *error))block;
//获取最新活动
- (void)request_campaignsAndBlock:(void (^)(id data, NSError *error))block;
//获取标签
- (void)request_labelsWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//获取推荐服饰
- (void)request_recommend_productsAndBlock:(void (^)(id data, NSError *error))block;
//获取可领取优惠券列表
- (void)request_promotionsAndBlock:(void (^)(id data, NSError *error))block;
//获取首页用户穿搭排名点评
- (void)request_home_social_rankAndBlock:(void (^)(id data, NSError *error))block;
//获取首页杂志专区
- (void)request_home_articlesAndBlock:(void (^)(id data, NSError *error))block;
//获取DRESSHERE精选
- (void)request_home_products_dresshereAndBlock:(void (^)(id data, NSError *error))block;
//获取热门分类
- (void)request_home_categories_hotWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//获取首页大咖点评
- (void)request_home_dianpingAndBlock:(void (^)(id data, NSError *error))block;
//猜你喜欢
- (void)request_products_guessyoulikeParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 文章
//获取文章列表
- (void)request_articlesParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//获取文章详情
- (void)request_articlesDetailWithArticleID:(NSString *)_id andBlock:(void (^)(id data, NSError *error))block;
//获取最新和最热评论
- (void)request_articles_comments_simpleWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//获取文章全部评论
- (void)request_articles_commentWithArticleID:(NSString *)article_id pageIndex:(NSNumber *)pageIndex pageSize:(NSNumber *)pageSize andBlock:(void (^)(id data, NSError *error))block;
//对文章发表评论
- (void)request_articles_commentWithArticleID:(NSString *)article_id content:(NSString *)content andBlock:(void (^)(id data, NSError *error))block;
//对评论点赞
- (void)request_articles_comment_niceWithCommentID:(NSString *)comment_id andBlock:(void (^)(id data, NSError *error))block;
//收藏或取消收藏文章
- (void)request_articles_collectWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取文章相关商品
- (void)request_products_related_witharticleWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 用户
// POST 修改性别
- (void)request_user_sexWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
//GET 获取用户会员订阅状态
- (void)request_vipAndBlock:(void (^)(id data, NSError *error))block;
// GET 获取待归还的服饰
- (void)request_user_products_returnAndBlock:(void (^)(id data, NSError *error))block;
// GET 获取我的收藏
// POST 预约穿搭顾问
- (void)request_consultParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取上门量体剩余次数
- (void)request_user_measure_lastAndBlock:(void (^)(id data, NSError *error))block;
// GET 获取本月预约穿搭顾问剩余次数
- (void)request_user_consult_lastAndBlock:(void (^)(id data, NSError *error))block;
// POST 申请预约上门量体
- (void)request_user_measureWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 设置用户风格喜好
- (void)request_user_stylesWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取用户基本信息
// POST 设置头像
- (void)request_user_photoWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 设置昵称和title
- (void)request_user_nicknameWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 补填手机号码（仅用于初次登录的补填，非修改手机号）
// POST 设置身高体重年龄
// GET 获取用户最近使用的收货地址
// GET 获取用户本月剩余租赁数量
- (void)request_user_lease_lastAndBlock:(void (^)(id data, NSError *error))block;
// GET 获取用户押金
- (void)request_user_depositAndBlock:(void (^)(id data, NSError *error))block;
// GET 获取用户管理的地址列表
- (void)request_user_addressAndBlock:(void (^)(id data, NSError *error))block;
// POST 设置用户封面
- (void)request_user_coverWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 修改手机号码
- (void)request_user_phone_modifyWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 社交
// POST 关注/取消关注
- (void)request_social_subscribeWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 发布动态
- (void)request_social_publishWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 删除动态
// POST 修改动态
// POST 对动态点赞
- (void)request_social_post_niceWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 对动态发表评论
- (void)request_social_post_commentWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 对动态评论点赞
- (void)request_social_post_comments_niceWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取最新最热评论
- (void)request_social_post_comments_simpleWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取全部评论
- (void)request_social_posts_commentsWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取粉丝列表
- (void)request_social_fansWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取关注列表
- (void)request_social_subscribedWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取动态（帖子）类型
// GET 获取社区动态
- (void)request_social_posts_squaresWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取自己或他人动态
- (void)request_social_postsWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取用户社交主页信息
- (void)request_social_user_infoWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 订阅
// GET 获取所有品牌
- (void)request_brandsAndBlock:(void (^)(id data, NSError *error))block;
// GET 获取推荐设计师
- (void)request_brands_recommend_designersWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取推荐品牌
- (void)request_brands_recommendsWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 服装
// GET 查询服装
- (void)request_productsWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取特卖-折扣服装列表
- (void)request_products_discountsWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取限量服装列表
- (void)request_products_limitedWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取特卖-好店内容
- (void)request_products_goodshopsWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取特卖-自营内容
- (void)request_products_dresshereWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取特卖-自营（混合模式）
- (void)request_products_dresshere_hybirdWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取服装详情
- (void)request_products_detailWithDictionary:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取服装尺码
- (void)request_products_sizesWithDictionary:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取服装被收藏次数
// GET 获取品牌点评
- (void)request_articles_brand_remarkWithDictionary:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取相关商品
- (void)request_products_relatedWithDictionary:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 收藏或取消收藏品牌
- (void)request_brand_collectWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 收藏或取消收藏服装
- (void)request_product_collectWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取品牌旗下服装数量
- (void)request_brands_products_countWithDictionary:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取品牌详情
- (void)request_brands_detailWithParams:(NSDictionary *)params AndBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 购物车
// POST 添加商品到购物车
- (void)request_cart_addWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取购物车内容
- (void)request_cartAndBlock:(void (^)(id data, NSError *error))block;
// POST 删除购物车内容
// POST 修改购物车内容数量
- (void)request_user_cart_modify_countWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取购车内数量
- (void)request_cart_countAndBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 通知
// GET 获取通知类型
- (void)request_user_notification_typesWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取我的通知
- (void)request_user_notificationsWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取未读通知数量
- (void)request_notifications_unread_countAndBlock:(void (^)(id data, NSError *error))block;
// POST 标记全部已读
- (void)request_notifications_readallWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 标记某个通知已读
- (void)request_notifications_readWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 删除通知
- (void)request_user_notifications_deleteWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 优惠券
// GET 获取我的优惠券
- (void)request_couponsWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 领取优惠券
// GET 获取可用优惠券数量
- (void)request_coupons_valid_countWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 订单
// POST 预创建订单
- (void)request_order_precreateWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 确认订单
- (void)request_order_confirmWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 设置收货地址
- (void)request_order_receiverWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 设置洗衣归还地址
- (void)request_order_washing_returnWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 设置物流方式
- (void)request_order_expressWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 对订单使用优惠券
- (void)request_order_couponWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 查询订单状态
- (void)request_payment_statusWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取订单列表
- (void)request_ordersWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取订单详情
- (void)request_orders_detailWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 批量申请归还
- (void)request_order_apply_returnWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 查询租赁状态
// GET 查询赔偿状态
// GET 获取赔偿详细信息
- (void)request_order_compensateWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 会员
// GET 获取会员等级
- (void)request_vipLevelsAndBlock:(void (^)(id data, NSError *error))block;
// POST 购买会员
- (void)request_vip_purchaseWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取购买会员优惠券
- (void)request_user_vip_promotionAndBlock:(void (^)(id data, NSError *error))block;

#pragma mark - 地址管理
// POST 新增常用地址
- (void)request_user_address_createWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 修改常用地址
- (void)request_user_address_modifyWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// GET 获取常用地址
// POST 删除常用地址
- (void)request_user_address_deleteWithParams:(NSDictionary *)params andBlock:(void (^)(id data, NSError *error))block;
// POST 通过验证码登录

#pragma mark - 获取阿里云临时权限
- (void)request_Aliyun_OSSSecretTokenWithBlock:(void (^)(id data, NSError *error))block;

@end
